#include <inc/sysconf.h> 

			  .text
			  .code32

			  .globl delay

delay:
			  inb	$0x84, %al
			  inb	$0x84, %al
			  inb	$0x84, %al
			  inb	$0x84, %al

			  ret
			  
			  .globl fs_init_image
fs_init_image:
#include "fsimage.data.S"

			  .globl syscall0
			  .globl syscall1
			  .globl syscall2
			  .globl syscall3
			  .globl syscall4
			  .globl syscall5

syscall0:
			  movl	%ss:4(%esp), %eax
			  int	$INT_SYSCALL
			  ret

syscall1:

			  movl	%ss:4(%esp), %eax
			  movl	%ss:8(%esp), %ebx

			  int	$INT_SYSCALL
			  ret

syscall2:

			  movl	%ss:4(%esp), %eax
			  movl	%ss:8(%esp), %ebx
			  movl	%ss:12(%esp), %ecx
			  int	$INT_SYSCALL
			  ret

syscall3:
			  movl	%ss:4(%esp), %eax
			  movl	%ss:8(%esp), %ebx
			  movl	%ss:12(%esp), %ecx
			  movl	%ss:16(%esp), %edx
			  int	$INT_SYSCALL
			  ret

syscall4:
			  movl	%ss:4(%esp), %eax
			  movl	%ss:8(%esp), %ebx
			  movl	%ss:12(%esp), %ecx
			  movl	%ss:16(%esp), %edx
			  movl	%ss:20(%esp), %esi
			  int	$INT_SYSCALL
			  ret

syscall5:
			  movl	%ss:4(%esp), %eax
			  movl	%ss:8(%esp), %ebx
			  movl	%ss:12(%esp), %ecx
			  movl	%ss:16(%esp), %edx
			  movl	%ss:20(%esp), %esi
			  movl	%ss:24(%esp), %edi
			  int	$INT_SYSCALL
			  ret

#include <inc/sysconf.h>
			  .globl kcb_ret
kcb_ret:	  //	(ret_val)
			  movl	%ss:4(%esp), %eax
			  int	$INT_KCB_RET

			  .globl pfhandler_entry
pfhandler_entry:
			  call	pfhandler
			  int	$INT_KCB_RET

			  .data

#define	SRL(val, shamt)	(((val) >> (shamt)) & ~(-1 << (32 - (shamt))))
#include <inc/memlayout.h>

			  .globl vpt
			  .globl vpd

			  .set	vpt, UVPT
			  .set	vpd, (UVPT + SRL(UVPT, 10))

			  .globl envs
			  .set	envs, UENVS

#include <user/umem.h>

			  .globl ptab
			  .set	ptab, UPAGE

#include <inc/mmu.h>
			  
			  .align PAGE_SIZE
			  .globl up_info
up_info:
			  .space PAGE_SIZE

